Inventions or advances in the computer system field should be useful in an open environment. The future systems open environment will include systems of the past as well as those of the future. IBM machines, Amdahl, and Hitachi machines employ hypervisors based upon IBM mainframe systems such as the System/390 (e.g. U.S. Pat. No. 4,564,903). IBM's ES/9000 series can operate in basic and hypervisor mode with logical partitioning of resources. Partitions can be created to enable small machines within a hypervisor environment (See e.g. IBM TDB n7B of 12-91, p. 309) to enable shared use of memory in a multiprocessor system for a CEC. It would also be desirable to increase memory utilization and machine operating performance in parallel systems and networks which employ parallel machines and partitioned memory.
Partitions of memory are used for processors of parallel machines, in mainframes and in networked systems, and in massively parallel machines which have hundreds or even thousands of parallel processing nodes with a host or control processor controlling processing nodes. An early example of a massively parallel machine was the IBM RP3, a research machine. Another example, more current, would be the Connection Machines' CM-5. In such systems, a control processor coordinates the functions of parallel processing nodes connected by some son of interprocessor communication network. A computational node which can comprise a group of processing nodes grouped to use a partition of memory. IBM mainframe structures use a group of processors (each of which may have multiple functional units) operating in parallel. In IBM mainframes, as illustrated by U.S. Pat. No. 4,843,541 the real mode can be used, but a hypervisor mode also exists, which permits the data processing system to be partitioned into a plurality of logical partitions. The controlling system is called a host. This host, which could be a control processor in a massively parallel machine, or a data server in a networked system, utilizes host control code, hardware and microcode to enable guests or clients to operate in different partitions. A system can have main storage, expanded storage, and channel and subchannel resources assigned to different (with LPAR logical) partitions in the system so different clients or guests can process applications in the different partitions. In an environment with multiple processors, we recognize that there exists software that exploits channel DAT. It would be desirable to enable such older existing machines with their memory systems as well as those which we are developing to be able to operate in an environment where partition utilization is improved.
In addition it would be desirable if the development could be used with the current trend in computer systems which is to utilize hypervisor environments to exploit more and more the logical partitioning of a CEC into many systems. Each system requires it's own storage and must be able to address that storage as an entity that starts with address 0 and increases to the maximum allocated to it. In a system that doesn't support channel Dynamic Address Translation (DAT), the hypervisor performs CCW address translation prior to issuing START SUBCHANNEL (SSCH). It would also be desirable to allow the advance needed for memory utilization to be used in such systems which utilize channel Dynamic Address Translation as is the case with some older Japanese Computer Manufacturer's software.
One of the problems with partitions, in which a user program or application runs (whether it be a real or a logical partition), is that storage needs to be assigned to the partition. This is done by a control program or an administrator. U.S. Pat. No. 4,843,541 allowed automatic relocation of the absolute addresses of the I/O channel and subchannel resources in the system to their assigned partitions. Absolute and virtual addresses of different guest programming systems, as well as page addresses for any expanded storage, were relocated into their assigned partitions.
The IBM ES/3090 Processor Complex functions as a PR/SM machine having an LPAR hypervisor. The separation and allocation of the physical resources is supported by the interpretive-execution facility of the machine and is performed by the hypervisor internal code called "LPAR". Similarly, the individual partitions can be called "guest" machines. It would be desirable to allow client machines to be treated like guests in a multiple client/data server networked environment.
It would be desirable to increase memory utilization and machine operating performance in parallel systems as well as in network environments and other systems (like highly parallel and massively parallel machines) which employ multiple processors operating concurrently. It would be desirable to improve the functional parallelism (the hardware and controls which permit different functions to be performed concurrently, e.g. I/O and separate addition and multiplication) in both real and hypervisor controlled processing systems. However, one of the barriers for automatically doing this has been the partition control structure. In the past when partitions needed to be changed the machines had to be in a quiescent state. The machine configuration has been controlled from an administration console or data server in order to relocate memory space.
Any advance should be used in advanced parallel processors like the IBM ES/3090 and the more current ES/9000 series. The IBM ES/3090 could perform a sort of zone relocation, as will be described. A publication about this machine was the Processor Resource/Systems Manager Planning Guide for the ES/3090 Processor Complex, IBM Publication No. GA22-7123-3. An advance for an ES/9000 system has been described in a co-pending application in which there has been described a way to relocate memory space and to change its size and location in whole or in pad, see U.S. patent application Ser. No. 08/014,977 filed Feb. 8, 1993 by K. J. Duvalsaint et al and entitled "Multi-Zone Relocation Facility Computer Memory System" which is included by reference.
It would be desirable now to be able to relocate memory space for one or more clients or guests during active processing. It would be especially desirable to do this for existing kinds of systems such as we have described, as well as those which develop in the future. And it would further be especially desirable to provide a way of doing this for existing IBM ES/9000 systems which would be able to operate as processors which can process their own applications as well as function as data servers.(this would be a server/host) A problem with some of the operating systems which operate in these environments is that they use a virtual data address in the CCW. In order to support virtual CCW, the hypervisor (LPAR) is required to perform the CCW address translation prior to issuing a START SUBCHANNEL instruction.
How these disparate desires may be achieved in light of the barriers which must be overcome is addressed by the present invention.